package org.example.springboot01.utils;

public class ThreadLocalUtil {
    // 创建一个 ThreadLocal 实例，用于存储数据
    private static final ThreadLocal<Object> threadLocal = new ThreadLocal<>();

    /**
     * 向当前线程的 ThreadLocal 中设置值
     * @param value 要设置的值
     */
    public static void set(Object value) {
        threadLocal.set(value);
    }

    /**
     * 从当前线程的 ThreadLocal 中获取值，使用泛型进行类型转换
     * @param <T> 泛型类型
     * @return 获取到的值，如果没有则返回 null
     */
    public static <T> T get() {
        return (T) threadLocal.get();
    }

    /**
     * 从当前线程的 ThreadLocal 中移除值
     */
    public static void remove() {
        threadLocal.remove();
    }
}